package com.kfm.loginIp.mapper;

import com.kfm.loginIp.model.User;
import org.apache.ibatis.annotations.Mapper;

/**
* @author Aurora雪
* @description 针对表【user】的数据库操作Mapper
* @createDate 2023-11-10 22:43:26
* @Entity com.kfm.loginIp.model.User
*/
@Mapper
public interface UserMapper {

    /**
     * 删除
     * @param id
     * @return
     */
    int deleteByPrimaryKey(Long id);

    /**
     * 插入
     * @param record // 要插入的数据
     * @return
     */
    int insertSelective(User record);

    /**
     * 根据主键查询
     */
    User selectByPrimaryKey(Long id);

    /**
     * 根据主键更新
     */
    int updateByPrimaryKeySelective(User record);

    /**
     * 查询所有
     * @param user
     * @return
     */
    User selectAll(User user);

    /**
     * 根据用户名查询
     * @param username
     * @return
     */
    User selectByUsername(String username);

    /**
     * 根据手机号查询
     * @param phone
     * @return
     */
    User selectByPhone(String phone);

    /**
     * 根据邮箱查询
     * @param email
     * @return
     */
    User selectByEmail(String email);

    /**
     * 根据手机号和密码查询
     * @param phone
     * @param password
     * @return
     */
    User findByPhoneAndPassword(String phone, String password);

    /**
     * 根据邮箱和密码查询
     * @param email
     * @param password
     * @return
     */
    User findByEmailAndPassword(String email, String password);

    /**
     * 根据用户名和密码查询
     * @param username
     * @param password
     * @return
     */
    User findByUsernameAndPassword(String username, String password);

    /**
     * 根据手机号更新
     * @param user
     * @return
     */
    int updateByPhone(User user);

    /**
     * 根据邮箱更新
     * @param user
     * @return
     */
    int updateByEmail(User user);
}
